#include <cstdio>

int f[ 1001 ][ 2001 ][ 2 ];

inline int add( int a, int b )
{
    return ( a + b ) % 100000007;
}

int main( )
{
    int i, j, t, n, m;
    f[ 1 ][ 1 ][ 0 ] = f[ 1 ][ 2 ][ 1 ] = 1;
    for ( i = 2; i <= 1000; i++ )
        for ( j = 1; j <= i * 2; j++ )
        {
            f[ i ][ j ][ 0 ] = add( f[ i - 1 ][ j ][ 0 ], add( f[ i - 1 ][ j - 1 ][ 0 ], add( f[ i - 1 ][ j ][ 1 ], add( f[ i - 1 ][ j ][ 1 ], f[ i - 1 ][ j - 1 ][ 1 ] ) ) ) );
            f[ i ][ j ][ 1 ] = add( f[ i - 1 ][ j - 1 ][ 0 ], add( f[ i - 1 ][ j - 1 ][ 0 ], add( f[ i - 1 ][ j ][ 1 ], add( f[ i - 1 ][ j - 1 ][ 1 ], f[ i - 1 ][ j - 1 ][ 1 ] ) ) ) );
            if ( j >= 2 )
                f[ i ][ j ][ 1 ] = add( f[ i ][ j ][ 1 ], add( f[ i - 1 ][ j - 2 ][ 0 ], f[ i - 1 ][ j - 2 ][ 1 ] ) );
        }
    scanf("%d", &t);
    while ( t-- )
    {
        scanf("%d%d", &n, &m);
        printf("%d\n", add( f[ n ][ m ][ 0 ], f[ n ][ m ][ 1 ] ));
    }
    return 0;
}
